package com.ysx.teacher.day20210909.ch06;

import java.util.ArrayList;

public class AnimalTest {

    public static void main(String[] args) {

        // 1 准备1个乾坤袋=数据库
        ArrayList<AnimalEntity> arrayList =new ArrayList<AnimalEntity>();

        // 2准备好1只动物
        CatEntity cat  = new CatEntity();
        cat.setName("HelloKitty");
        cat.setColor("white");
        cat.setPrice(1000);

        putAnimal(cat,arrayList);

        DogEntity dog  = new DogEntity();
        dog.setName("WorldKitty");
        dog.setPrice(500);

        putAnimal(dog,arrayList);

        //有多少只动物?
        System.out.println(arrayList.size());

        // 有多少只1000元以上的动物?

        int couter= getCounter(arrayList);
        System.out.println(couter);

        // 数组中是否有名字以Kitty结尾的猫
        System.out.println(check(arrayList));

        //把名字叫HelloKitty的那只动物修改为JDKKitty



    }

    public static boolean check(ArrayList<AnimalEntity> arrayList){

        // 1、先定义一个标识
        boolean flag=false;

        // 2、遍历数组
        for(int index=0;index<arrayList.size();index++){
            // 3、从数组中取1个对象
            AnimalEntity entity = arrayList.get(index);

            // 4、从对象中取1个属性
            String name = entity.getName();
            boolean rs = name.endsWith("Kitty");

            // 5、如果这个属性满足条件 flag=true;
            if(rs == true){
                flag=true;
            }
        }

        // 6、返回counter
        return flag;

    }
    public static int getCounter(ArrayList<AnimalEntity> arrayList){

        // 1、先定义一个计数器
        int counter=0;

        // 2、遍历数组
        for(int index=0;index<arrayList.size();index++){
            // 3、从数组中取1个对象
            AnimalEntity entity = arrayList.get(index);

            // 4、从对象中取1个属性
            double price = entity.getPrice();

            // 5、如果这个属性满足条件
            if(price>=1000){
                counter++;
            }
        }

        // 6、返回counter
        return counter;

    }

    // 设计1个增加动物的方法

    /**
     * 解释 ： 因为目前我们没有学习访问数据库的技术 只能用乾坤袋来模拟数据库
     * 乾坤袋=数据库
     * @param entity
     * @param arrayList
     * @return
     */
    public static boolean putAnimal(AnimalEntity entity, ArrayList<AnimalEntity> arrayList){

        return arrayList.add(entity);
    }
}
